package main

import (
	"github.com/gin-gonic/gin"
	"log"
	"net/http"
	"path/filepath"
)

// 有没有下载文件的
func main() {
	router := gin.Default()
	// // 为 multipart forms 设置较低的内存限制 (默认是 32 MiB)
	router.MaxMultipartMemory = 1 // 8Mib, 左移10位就是8Kb
	// 上传单个文件
	router.POST("/upload_single_file", func(ctx *gin.Context) {
		file, _ := ctx.FormFile("file")
		log.Println(file.Filename)

		dst := "./" + file.Filename
		err := ctx.SaveUploadedFile(file, dst)
		if err != nil {
			ctx.JSON(500, gin.H{"message": err.Error()})
			return
		}
		ctx.JSON(http.StatusOK, gin.H{"message": "upload file successfully"})
	})

	// 上传多个文件
	router.POST("/upload_multi_file", func(ctx *gin.Context) {
		form, _ := ctx.MultipartForm()
		files := form.File["upload[]"]
		for _, file := range files {
			log.Println(file.Filename)
			dst := filepath.Base(file.Filename)
			err := ctx.SaveUploadedFile(file, dst)
			if err != nil {
				ctx.JSON(500, gin.H{"message": err.Error()})
				return
			}
		}
		ctx.JSON(http.StatusOK, gin.H{"message": "upload file successfully"})
	})
	router.Run(":8080")
}
